const express = require('express');
const router = express.Router();
const Question = require('../models/question');

// 获取所有题目 - 放在最前面
router.get('/', async (req, res) => {
    try {
        const questions = await Question.find().sort({ createDate: -1 })
        console.log('获取题目列表:', questions) // 添加日志
        res.json(questions)
    } catch (error) {
        console.error('获取题目列表失败:', error)
        res.status(500).json({ error: '获取题目列表失败' })
    }
})

// 获取随机题目
router.get('/random', async (req, res) => {
    try {
        const count = await Question.countDocuments();
        if (count === 0) {
            return res.status(404).json({ 
                error: '题库中还没有题目' 
            });
        }

        const random = Math.floor(Math.random() * count);
        const question = await Question.findOne().skip(random);
        res.json(question);
    } catch (error) {
        console.error('获取随机题目失败:', error);
        res.status(500).json({ 
            error: error.message || '获取题目失败' 
        });
    }
});

// 添加新题目
router.post('/', async (req, res) => {
    try {
        console.log('收到新题目:', req.body);
        
        if (!req.body.content || !req.body.answer) {
            return res.status(400).json({ 
                error: '题目内容和答案都不能为空' 
            });
        }

        const question = new Question({
            content: req.body.content,
            answer: req.body.answer,
            imageUrl: req.body.imageUrl || '',
            hint: req.body.hint || ''
        });

        const savedQuestion = await question.save();
        console.log('保存成功:', savedQuestion);
        
        res.status(201).json(savedQuestion);
    } catch (error) {
        console.error('保存题目失败:', error);
        res.status(400).json({ 
            error: error.message || '保存题目失败' 
        });
    }
});

// 删除题目
router.delete('/:id', async (req, res) => {
    try {
        await Question.findByIdAndDelete(req.params.id)
        res.status(204).end()
    } catch (error) {
        console.error('删除题目失败:', error)
        res.status(500).json({ error: '删除题目失败' })
    }
})

module.exports = router; 